var ordenApp = function(timeToLoad) {
	this.busyTime = timeToLoad || 1000;
};

ordenApp.prototype = function() {
	
	showOrdenPage = function(mesaSelect){
		_activeButtonsOrden();
		var datos = 'idMesa=' + mesaSelect.idMesa + '&idOrden=' + mesaSelect.idOrden 
		+ '&idUsuario=' + index.userData.idUsuario + '&idRestaurante=' + index.userData.idRestaurante;
		sData.getOrdenSumary(datos, _showProductsOrden);
		$("#mesaOrdenText").text(mesaSelect.idMesa + ' - ' + mesaSelect.apiKey + ' ' + mesaSelect.descripcion);
		$("#pagarCuentaPage #mesaOrdenText").text(mesaSelect.idMesa + ' - ' + mesaSelect.apiKey + ' ' + mesaSelect.descripcion);
		$('#addToOrdenPrint').addClass('ui-state-disabled');
	},
	
	// Despliega los productos de la orden en la página, esta es la lista de arriba en al pagina de orden
	_showProductsOrden = function(data, success){
		$productsList = $("#productsListOrdenActual");
		$productsList.empty();
		console.log("Estatus de la orden " + data.estatus);
		if(data != null){
			if(data.items != null && data.items.length > 0){
				$('#pedidoConProductos').text('');
				$('#cerrarCuentaPop').removeClass('ui-state-disabled');
				var idRestaurante = localStorage.getItem("idRestaurante");
				console.log(idRestaurante);
				for(var i in data.items){
					var product = data.items[i];
					var strFormat = '';
					strFormat += '<li data-icon="check"><a id="'+product.productOrderId+'" >';
					strFormat += '<img id="listOrden'+i+idRestaurante+'-'+product.idProduct
						//+' src="' + IPSERVIDOR + SERVICES+'/getProductImage/'+idRestaurante+'/'+product.idProduct
						+'" width="80" height="80" alt="'+product.nombre+'"> <h2>' + product.nombre + '</h2><p>';
					if(product.variaciones != null){
						for(var k in product.variaciones){
							if(product.variaciones[k].selected){
								strFormat += 'Variación:' + product.variaciones[k].descripcion ; 
							}
						}
					}
					var subPrecio = 0.0;
					var str = ' Precio: '
					for(var j in product.tamanios){
						tamanio = product.tamanios[j];
						if(tamanio.cantidad > 0){
							//subPrecio += precioItem.Valor * precioItem.Cantidad;
							str += tamanio.descripcion + ' X ' + tamanio.cantidad + ', ';
						}
						
					}
					strFormat += str;
					//strFormat += subPrecio;
					strFormat += '</p></a></li>';
					$productsList.append(strFormat)
					var item = $('#' + product.productOrderId, $productsList);
					item.data('product', product);
					
				}
				
				for(var i in data.items){
					var product = data.items[i];
					loadImage('getProductImage',idRestaurante, product.idProduct, 'listOrden' + i);
				}
				
			}else{
				$('#cerrarCuentaPop').addClass('ui-state-disabled');
				$('#pedidoConProductos').text('No hay productos agregados.');
			}
			
		}else{
			$('#cerrarCuentaPop').addClass('ui-state-disabled');
			$('#pedidoConProductos').text('No hay productos agregados.');
		}
		$productsList.listview('refresh');
		
		updateButtonsOrden(data.estatus);
		
	},
	
	//Despliega los productos del nuevo pedido, este es el listado de abajo de la pagina de orden
	showNuevosProductos = function(userData, nuevoPedido){
		$productsList = $("#productsListOrdenNuevo");
		$productsList.empty();
		if(nuevoPedido != null && nuevoPedido.length > 0){
			$('#nuevoPedidoConProductos').text('');
			$('#addToOrdenPrint').removeClass('ui-state-disabled');
			var idRestaurante = localStorage.getItem("idRestaurante");
				for(var i in nuevoPedido){
					var product = nuevoPedido[i];
					var strFormat = '';
					strFormat += '<li data-icon="edit"><a id='+product.productOrderId+' href="#productOrdenDetailPage" >';
					strFormat += '<img id="listPendiente'+ i+idRestaurante+'-'+product.id
						//+'src="' + IPSERVIDOR + SERVICES+'/getProductImage/'+idRestaurante+'/'+product.id
						+'" width="80" height="80" alt="'+product.nombre+'"> <h2>' + product.nombre + '</h2><p>';
					if(product.variaciones != null){
						for(var k in product.variaciones){
							if(product.variaciones[k].selected){
								strFormat += 'Variación:' + product.variaciones[k].descripcion ; 
							}
						}
					}
					var subPrecio = 0.0;
					var str = ' Precio: '
					for(var j in product.tamanios){
						tamanio = product.tamanios[j];
						if(tamanio.cantidad > 0){
							//subPrecio += precioItem.Valor * precioItem.Cantidad;
							str += tamanio.descripcion + ' X ' + tamanio.cantidad + ', ';
						}
						
					}
					strFormat += str;
					//strFormat += subPrecio;
					strFormat += '</p></a></li>';
					$productsList.append(strFormat)
					var item = $('#' + product.productOrderId, $productsList);
					item.data('product', product);
					
				}
				for(var i in nuevoPedido){
					var product = nuevoPedido[i];
					loadImage('getProductImage',idRestaurante, product.id, 'listPendiente'+i);
				}
				$('#productsListOrdenNuevo').listview('refresh');
			}else{
				$('#addToOrdenPrint').addClass('ui-state-disabled');
				$('#nuevoPedidoConProductos').text('No hay productos agregados.');
			}
			$productsList.listview('refresh');
			
	},
	
	// despliega el detalle del producto cuando este producto es para editar o eliminar
	_handleDataForProductDetail = function(data, success){
		var productForDetails = data;
		if(data != null){
			// Llenado de la descripcion del producto
			$productDetail = $('#productOrdenDetailDiv');
			$('#productOrdenDetailDiv #nombreProducto').html('<p style="text-indent:20px;">' + productForDetails.nombre + '</p>');
			$('#productOrdenDetailDiv #descripcionProducto').html('<p style="text-indent:30px;">' + productForDetails.descripcion + '</p>');
			var str = '<table width="100%"><tr><td class="center text-red">';
			// Llenado de los tamaños en la descripción 
			for(var j in productForDetails.tamanios){
					precioItem = productForDetails.tamanios[j];
					if(precioItem.descripcion == ''){
						str += 'Precio. $ ' + precioItem.precio + '&nbsp;&nbsp;&nbsp;';
					}else{
						str += precioItem.descripcion + ' $ ' + precioItem.precio + '&nbsp;&nbsp;&nbsp;';
					}
					
				}
			
			$('#productOrdenDetailDiv #textPrecios').html(str);
			
			// llenado de variaciones
			$productDetailVar = $('#spanVariacionesOrden');
			$productDetailVar.empty();
			var strVarIni = '<div data-role="collapsible"><h4>Variaciones</h4>';
			strVarIni += '<p><fieldset data-role="controlgroup" id="fieldsetVar">';
			var strRadios = '';
			for(var k in productForDetails.variaciones){
				variacionItem = productForDetails.variaciones[k];
				var strCheck = '';
				if(variacionItem.selected){
					strCheck = 'checked="checked"';
				}
				var str = '';
				str = '<input type="radio" '+strCheck+' name="radio-var" id="radio-var-ord'+variacionItem.descripcion+'"';
				str += '><label for="radio-var-ord'+variacionItem.descripcion+'">'+variacionItem.descripcion+'</label>';
				strRadios += str;
			}
			
			if(productForDetails.variaciones != 0){
				$productDetailVar.append(strVarIni + strRadios + '</fieldset></p></div>');
				$productDetailVar.trigger('create');
			}	
			 
			// llenado de los ingredientes
			$productDetailIng = $('#spanIngOrden');
			$productDetailIng.empty();
			var strIngIni = '<div data-role="collapsible"><h4>Ingredientes</h4>';
			strIngIni += '<p><fieldset data-role="controlgroup" id="fieldsetIng">';
			var strRadios = '';
			for(var l in productForDetails.ingredientes){
				ingredienteItem = productForDetails.ingredientes[l];
				var str = '';
				str = '<input type="checkbox" name="checkbox_ing_ord" data-mini="true" id="checkbox-ing-ord'+ingredienteItem.descripcion+'"';
				if(ingredienteItem.selected){
					str += ' checked="checked"';
				}
				str += '><label for="checkbox-ing-ord'+ingredienteItem.descripcion+'">'+ingredienteItem.descripcion+'</label>';
				strRadios += str;
				
			}
			if(productForDetails.ingredientes != 0){
				$productDetailIng.append(strIngIni + strRadios + '</fieldset></p><p style="font-size:smaller;">*Los ingredientes se pueden quitar o poner según la preferencia del usuario.</p></div>');
				$productDetailIng.trigger('create');
			}					
			
			// llenado de los tamaños 
			$productSizes = $('#sizesProductOrden');
			$productSizes.empty();
			var strSizes = '<table><tr>';
			var sizeStr = '';
			for(var m in productForDetails.tamanios){
				tamanio = productForDetails.tamanios[m];
				console.log(tamanio.descripcion + ' ' + tamanio.cantidad);
				if(tamanio.descripcion == ''){
					sizeStr += '<td width="250px"><form><div class="ui-field-contain"><label for="select-native-ord'+tamanio.descripcion+'">Cantidad.';
				}else{
					sizeStr += '<td width="160px"><form><div class="ui-field-contain"><label for="select-native-ord'+tamanio.descripcion+'">' + tamanio.descripcion;
				}
					sizeStr += '</label><select name="select-native-ord'+tamanio.descripcion+'"'
					+' id="select-native-ord'+tamanio.descripcion+'" data-mini="true">';
					for(var n = 0; n < 11; n++){
						if(n == tamanio.cantidad){
							sizeStr += '<option selected value="'+n+'">'+n+'</option>';
						}else{
							sizeStr += '<option value="'+n+'">'+n+'</option>';
						}
					}
					
					sizeStr += '</div></form></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>';
				strSizes += sizeStr;
				sizeStr = '';
					
			}
			$productSizes.append(strSizes + '</tr></table>');
			
			$productSizes.append('</tr></table>');
			$image = $('#imageProduct');
			$image.empty();
			//$image.append('<img src="' + IPSERVIDOR + SERVICES+'/getProductImage/'+index.userData.idRestaurante+'/'+productForDetails.id+'" width="80" height="80" alt="'+productForDetails.nombre+'>');
			$image.append('<img id="detailOrdenPrduct'+ index.userData.idRestaurante+'-'+productForDetails.id 
				//+ 'src="' + IPSERVIDOR + SERVICES+'/getProductImage/'+index.userData.idRestaurante+'/'+productForDetails.id
				+'" width="80" height="80" alt="'+productForDetails.nombre+'">');
			loadImage('getProductImage',index.userData.idRestaurante, productForDetails.id, 'detailOrdenPrduct');
			
			$("#productOrdenDetailPage .ui-content").trigger( "create" );
        }
	},
	
	// Despliega el detalle del producto seleccionado	
	showProductOrdenDetail = function(productForDetails){
		//alert(productForDetails.nombre);
		if(productForDetails != null){
			_handleDataForProductDetail(productForDetails, true);
			//sData.getDataForProductDetail(index.userData, productForDetails, index.idRestaurante, _handleDataForProductDetail);
		}
	},
	
	_activeButtonsOrden = function(){
		$('#addToOrdenPrint').removeClass('ui-state-disabled');
		$('#toAddProductPage').removeClass('ui-state-disabled');
		$('#cerrarCuentaPop').removeClass('ui-state-disabled');
		$('#toPagarCuentaPage').removeClass('ui-state-disabled');
	},
	
	updateButtonsOrden = function(status){
		console.log("Estatus " + status);
		
		if(status === 2){
			$('#addToOrdenPrint').addClass('ui-state-disabled');
			$('#toAddProductPage').addClass('ui-state-disabled');
			$('#cerrarCuentaPop').addClass('ui-state-disabled');
			$('#toPagarCuentaPage').removeClass('ui-state-disabled');
			$("#estatusMesaText").text(" Orden Por Pagar");
		}else {
			$('#toPagarCuentaPage').addClass('ui-state-disabled');
			$("#estatusMesaText").text(" Orden Abierta");
		}
	},
	
	closeOrder = function(orden){
		sData.closeOrder(orden, _handleCloseOrder);
	},
	
	_handleCloseOrder = function(data, success){
		
	},
	
	pagarOrder = function(orden){
		sData.pagarOrder(orden, _handlePagarOrder);
	},
	
	_handlePagarOrder = function(data, success){
		
	};
	
    
	return{
		showOrdenPage:showOrdenPage,
		showNuevosProductos:showNuevosProductos,
		showProductOrdenDetail:showProductOrdenDetail,
		updateButtonsOrden:updateButtonsOrden,
	}
}();
